import UIKit

@available(iOS 2.0, *)
extension QKC where AA :UITouch {
    open func timestamp_qk_g() -> QKC<AA,YY,ZZ, TimeInterval >{
		 self +^ self.value.timestamp
	}

    open func phase_qk_g() -> QKC<AA,YY,ZZ, UITouch.Phase >{
		 self +^ self.value.phase
	}

		// touch down within a certain point within a certain amount of time
    open func tapCount_qk_g() -> QKC<AA,YY,ZZ, Int >{
		 self +^ self.value.tapCount
	}

    @available(iOS 9.0, *)
    open func type_qk_g() -> QKC<AA,YY,ZZ, UITouch.TouchType >{
		 self +^ self.value.type
	}

	// The majorRadius will be accurate +/- the majorRadiusTolerance
    @available(iOS 8.0, *)
    open func majorRadius_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.majorRadius
	}

    @available(iOS 8.0, *)
    open func majorRadiusTolerance_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.majorRadiusTolerance
	}

    open func window_qk_g() -> QKC<AA,YY,ZZ, UIWindow? >{
		 self +^ self.value.window
	}

    open func view_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.view
	}

    @available(iOS 3.2, *)
    open func gestureRecognizers_qk_g() -> QKC<AA,YY,ZZ, [UIGestureRecognizer]? >{
		 self +^ self.value.gestureRecognizers
	}

	// Force of the touch, where 1.0 represents the force of an average touch
    @available(iOS 9.0, *)
    open func force_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.force
	}

	// Maximum possible force with this input mechanism
    @available(iOS 9.0, *)
    open func maximumPossibleForce_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.maximumPossibleForce
	}

	// while M_PI/2 radians indicates that it is normal to the screen surface.
    @available(iOS 9.1, *)
    open func altitudeAngle_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.altitudeAngle
	}

	// Is only guaranteed non-nil if this UITouch expects or is an update.
    @available(iOS 9.1, *)
    open func estimationUpdateIndex_qk_g() -> QKC<AA,YY,ZZ, NSNumber? >{
		 self +^ self.value.estimationUpdateIndex
	}

	// Only denoting properties that are currently estimated
    @available(iOS 9.1, *)
    open func estimatedProperties_qk_g() -> QKC<AA,YY,ZZ, UITouch.Properties >{
		 self +^ self.value.estimatedProperties
	}

	// This happens e.g. for azimuth/altitude values when entering from the edges
    @available(iOS 9.1, *)
    open func estimatedPropertiesExpectingUpdates_qk_g() -> QKC<AA,YY,ZZ, UITouch.Properties >{
		 self +^ self.value.estimatedPropertiesExpectingUpdates
	}

    open func location_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGPoint>{
		 self +^ self.value.location(in:view)
	}

    open func previousLocation_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGPoint>{
		 self +^ self.value.previousLocation(in:view)
	}

	// Do not use precise locations for hit testing. A touch may hit test inside a view, yet have a precise location that lies just outside.
    @available(iOS 9.1, *)
    open func preciseLocation_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGPoint>{
		 self +^ self.value.preciseLocation(in:view)
	}

    @available(iOS 9.1, *)
    open func precisePreviousLocation_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGPoint>{
		 self +^ self.value.precisePreviousLocation(in:view)
	}

	// Passing a nil for the view parameter will return the azimuth relative to the touch's window.
    @available(iOS 9.1, *)
    open func azimuthAngle_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGFloat>{
		 self +^ self.value.azimuthAngle(in:view)
	}

	// Passing nil for the view parameter will return a unit vector relative to the touch's window.
    @available(iOS 9.1, *)
    open func azimuthUnitVector_qk_f(in view: UIView?) -> QKC<AA,YY,ZZ,CGVector>{
		 self +^ self.value.azimuthUnitVector(in:view)
	}

}

